﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos.Objetos;
using AccesoDatos.Manejador;
using Autorizacion_facturas_caja.Vacaciones;

namespace Autorizacion_facturas_caja
{
    public partial class frmVacaciones_Busqueda_DiasPendientes : Form
    {
        objRH obj = new objRH();
        objVacaciones obj1 = new objVacaciones();
        objRH obj2 = new objRH();
        objVacaciones obj3 = new objVacaciones();
        Manejador_Empleado_Captura Mane = new Manejador_Empleado_Captura();
        Manejador_Vacaciones MV = new Manejador_Vacaciones();

        #region FUNCIONES
        //llama al metodo obtiene datos y guarda valores en el obj buscar
        public frmVacaciones_Busqueda_DiasPendientes()
        {
            InitializeComponent();
            obj.Buscar = txtBuscar.Text.Trim();
            ObtieneDatosCombo();
        }

        //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
        private void ObtieneDatosCombo()
        {
            cmbSucursal.DataSource = Mane.ObtieneSucursales();
            cmbSucursal.ValueMember = "SucId";
            cmbSucursal.DisplayMember = "Nombre";
        }

        //realiza la busqueda para la forma
        private void buscar()
        {
            obj.Buscar = txtBuscar.Text.Trim();
            if (cmbTipo.Text == "DIAS ACUMULADOS")
            {
                obj1.Tipo = "DIAS".Trim();
            }
            else if (cmbTipo.Text == "PRIMAS VACACIONALES ANTERIORES") { obj1.Tipo = "PRIMA"; }

            if (cmbTipo.Text.Trim() != "")
            {
                dataGridView1.DataSource = MV.ListaEmpleadosDiasP(obj.Buscar, cmbSucursal.SelectedValue.ToString(), obj1.Tipo);
                propiedadesColumnas();
            }
            else { MessageBox.Show("SELECCIONE EL TIPO PARA LA BUSQUEDA"); }
        }
        //Asigna propiedades a las columnas 
        private void propiedadesColumnas()
        {
            this.dataGridView1.RowHeadersVisible = false;

            /*Esconde las columnas*/
            this.dataGridView1.Columns["Nombre_apellidos"].HeaderText = "EMPLEADO";
            this.dataGridView1.Columns["Nombre_apellidos"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

            this.dataGridView1.Columns["id_empleado"].Visible = false;
            this.dataGridView1.Columns["nombre"].Visible = false;
            this.dataGridView1.Columns["apellidos"].Visible = false;

            if (obj1.Tipo == "DIAS")
            {
                this.dataGridView1.Columns["Periodo"].Visible = false;
                this.dataGridView1.Columns["id_vacaciones"].Visible = false;
                this.dataGridView1.Columns["fecha_alta"].Visible = false;
                this.dataGridView1.Columns["Monto_prima"].Visible = false;
                this.dataGridView1.Columns["Dias_Correspondientes"].Visible = false;

                //Renombra columnas

                this.dataGridView1.Columns["Antiguedad"].HeaderText = "ANTIGUEDAD";
                this.dataGridView1.Columns["dias_acomulados"].HeaderText = "DÍAS ACUMULADOS";
                this.dataGridView1.Columns["dias_acomulados"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Antiguedad"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["dias_acomulados"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Antiguedad"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
            else
            {
                this.dataGridView1.Columns["Periodo"].HeaderText = "PERIODO";
                this.dataGridView1.Columns["Periodo"].Visible = true;
                this.dataGridView1.Columns["Monto_prima"].Visible = true;
                this.dataGridView1.Columns["estatus"].Visible = false;
                this.dataGridView1.Columns["id_sucursal"].Visible = false;
                this.dataGridView1.Columns["id_jefe"].Visible = false;
                this.dataGridView1.Columns["id_departamento"].Visible = false;
                this.dataGridView1.Columns["cuenta_banco"].Visible = false;
                this.dataGridView1.Columns["id_empresa"].Visible = false;
                this.dataGridView1.Columns["Id_prima_vacacional"].Visible = false;
                this.dataGridView1.Columns["Monto_Prima"].Visible = false;
                this.dataGridView1.Columns["fecha_ingreso"].HeaderText = "FECHA DE INGRESO";
                this.dataGridView1.Columns["fecha_ingreso"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["fecha_ingreso"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
            this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
            this.dataGridView1.Columns["departamento"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["puesto"].HeaderText = "PUESTO";
            this.dataGridView1.Columns["puesto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
            this.dataGridView1.Columns["departamento"].DisplayIndex = 2;
            this.dataGridView1.Columns["puesto"].DisplayIndex = 3;

        }

        //obtiene los valores de la fila seleccionada y despliega 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            obj1.Tipo = cmbTipo.Text.Trim();
            if (e.ColumnIndex != 0 && e.RowIndex >= 0 && obj1.Tipo == "DIAS ACUMULADOS")
            {
                obj.Id_Empleado = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                obj.Nombre = dataGridView1[1, e.RowIndex].Value.ToString();
                obj.Apellidos = dataGridView1[2, e.RowIndex].Value.ToString();
                obj.Puesto = dataGridView1[3, e.RowIndex].Value.ToString();
                obj.Departamento = dataGridView1[4, e.RowIndex].Value.ToString();
                obj1.Antigüedad = Convert.ToInt32(dataGridView1[5, e.RowIndex].Value);
                obj1.Dias_Acomulados = Convert.ToInt32(dataGridView1[6, e.RowIndex].Value);
                obj1.Periodo = Convert.ToInt32(dataGridView1[7, e.RowIndex].Value);
                obj1.Prima_Vacacional = dataGridView1[8, e.RowIndex].Value.ToString();
                obj1.Dias_Correspondientes = Convert.ToInt32(dataGridView1[9, e.RowIndex].Value);
                obj1.Fecha_Alta = Convert.ToDateTime(dataGridView1[10, e.RowIndex].Value);
                obj1.Id_Vacaciones = Convert.ToInt32(dataGridView1[11, e.RowIndex].Value);
                obj.Nombre_completo = dataGridView1[12, e.RowIndex].Value.ToString();

                obj2 = obj;
                obj3 = obj1;

                frmVacaciones_Dias_Pendientes fvdp = new frmVacaciones_Dias_Pendientes(obj2, obj3);
                fvdp.ShowDialog();

                buscar();
            }
            else if (e.ColumnIndex != 0 && e.RowIndex >= 0 && obj1.Tipo == "PRIMAS VACACIONALES ANTERIORES")
            {
                obj.Id_Empleado = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                obj.Nombre = dataGridView1[3, e.RowIndex].Value.ToString();
                obj.Apellidos = dataGridView1[4, e.RowIndex].Value.ToString();
                obj.Puesto = dataGridView1[5, e.RowIndex].Value.ToString();
                obj1.Id_Prima_Vacacional = Convert.ToInt32(dataGridView1[14, e.RowIndex].Value);

                frmVacaciones_Pago fvp = new frmVacaciones_Pago(obj1, obj, 3);
                fvp.ShowDialog();

                buscar();
            }
        }

        //coloca tops en botones
        private void frmVacaciones_Busqueda_DiasPendientes_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(btnRegresar, "REGRESAR");
        }

        //llama al metodo buscar
        private void cmbTipo_SelectedIndexChanged(object sender, EventArgs e)
        {
            buscar();
        }
        #endregion

        #region BOTONES
        //llama al metodo buscar
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            buscar();
        }

        //cierra la forma
        private void btnRegresar_Click(object sender, EventArgs e)
        {
            Close();
        }
        #endregion

        #region  EVENTOS

        //llama al metodo buscar
        private void txtBuscar_TextChanged(object sender, EventArgs e)
        {
            buscar();
        }

        #endregion
  
    }
}
